import { lookup } from './lookup';

/* 是否是对象 */
const isObject = (val) => val !== null && typeof val === 'object';
function renderTemplate (tokens, data) {
  // console.log(tokens, data);
  console.log(data);
  let resultStr = '';
  for (let i = 0; i < tokens.length; i++) {
    const token = tokens[i];
    if (token[0] === 'name') {
      resultStr += lookup(data, token[1]);
    } else if (token[0] === '#') {
      resultStr += parseArr(token[2], lookup(data, token[1]));
    } else {
      resultStr += token[1];
    }
  }
  // console.log(resultStr);
  return resultStr;
}

/* 解析数组 */
function parseArr (token, data) {
  // console.log(data);
  if (!Array.isArray(data)) throw new Error('data is not array');
  let resultStr = '';
  data.forEach((item) => {
    console.log('item', item);
    /* 如果item不是对象，就需要封装成对象，属性名为'.'，属性值为item */
    resultStr += renderTemplate(token, !isObject(item) ? { '.': item } : item);
  })
  return resultStr;
}

export {
  renderTemplate
}